package com.haoqizhe.kernel.jwt.properties;

import io.jsonwebtoken.SignatureAlgorithm;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Primary;

/**
 * json web token 配置
 *
 * @author haoqizhe.li
 * @date 2021/01/24 23:51
 */
@Data
@ConfigurationProperties(prefix = "jwt")
@Primary
public class JwtProperties {
    /**
     * jwt签发者
     */
    private String iss;
    /**
     * Rsa/Es公钥，hmac密钥
     */
    private String publicKey;
    /**
     * Rsa/Es私钥
     */
    private String privateKey;
    /**
     * token默认有效时间 30*60*1000（30分钟）
     */
    private Long expire;
    /**
     * 选择记住我后 token有效时间，默认 7*24*60*60*1000（7天）
     */
    private Long rememberExpire;
    /**
     * 判断刷新token的时间间隔，默认 5 分钟
     */
    private Long refreshTime;

    /**
     * 签名类型,仅支持SignatureAlgorithm枚举，默认HS512
     */
    private SignatureAlgorithm signType;

    public JwtProperties() {
        this.iss = "jwt";
        this.expire = 30 * 60L;
        this.rememberExpire = 7 * 24 * 60 * 60L;
        this.refreshTime = 5 * 60L;
        this.signType = SignatureAlgorithm.HS512;
    }

}
